//从若干副扑克牌中随机抽 5 张牌，判断是不是一个顺子，即这5张牌是不是连续的。2～10为数字本身，A为1，J为11，Q为12，K为13，而大、小王为 0 ，
//可以看成任意数字。A 不能视为 14。
//
//
//
// 示例 1:
//
//
//输入: [1,2,3,4,5]
//输出: True
//
//
//
// 示例 2:
//
//
//输入: [0,0,1,2,5]
//输出: True
//
//
//
// 限制：
//
// 数组长度为 5
//
// 数组的数取值为 [0, 13] .
//
// Related Topics 数组 排序 👍 336 👎 0


//leetcode submit region begin(Prohibit modification and deletion)
function isStraight(nums: number[]): boolean {

    nums.sort((a, b) => a - b)
    let gap = 0
    //? 记录王的个数
    let ghost = nums.lastIndexOf(0) + 1
    //? 根据王的个数来判断数组起始位置
    for (let i = nums.lastIndexOf(0) === -1 ? 1 : nums.lastIndexOf(0) + 2; i < nums.length; i ++) {
        if (nums[i] - nums[i - 1] !== 1) {
            //? 两张牌相同 一定不是顺子
            if (nums[i] === nums[i - 1]) return false
            //? 不相同 记录两张中间差几张牌
            gap += nums[i] - nums[i - 1] - 1
        }
    }
    //? 注意题目：若干副扑克牌 所以王可能超过两张
    return gap <= ghost

};
//leetcode submit region end(Prohibit modification and deletion)
